Feat/agent group#179
Conversation
- Added support for collapsing panel groups, allowing users to manage their workspace more effectively. - Introduced new state management for collapsed panel groups in the store. - Updated UI components to reflect the collapsed state and added expand/collapse buttons. - Enhanced persistence logic to save and restore the collapsed state across sessions. This feature improves user experience by providing better organization of panels.
…er UI consistency - Updated styles for inner group resize handles to ensure visibility and proper background blending during hover and dragging states. - Modified the expand button styling to position it beside the visible panel in collapsed groups, improving layout and usability. - Added tests to verify the new styles and their behavior in different states.
- Eliminated the box-shadow effect from the active task column to enhance visual clarity. - Updated tests to verify the absence of accent outlines around collapsed active panel groups. - Ensured that the active task panel maintains consistent opacity without additional styling interference.
- Changed the background of the expand button to transparent and adjusted its hover filter for better UI coherence. - Updated related tests to ensure consistent color treatment between collapse and expand controls. - Removed inline color styling from the expand button for cleaner code and adherence to style guidelines.
…ed project panels - Added `buildRenderSegments` function to create segments for rendering grouped and single project panels. - Introduced `buildRenderSegmentsForTest` for testing purposes. - Updated `TilingLayout` component to utilize the new segment rendering logic. - Enhanced tests to verify the correct behavior when a single slot becomes a grouped project panel. - Added state management for panel group collapse in the task store, ensuring proper handling of project group visibility.
- Added `panelCount` to `GroupInfo` to track the number of panels in a group. - Implemented `isPanelGroupCollapsibleForTest` and `isPanelGroupCollapseControlVisibleForTest` functions to manage collapse behavior based on panel count. - Updated `TilingLayout` component to utilize new collapse control logic. - Enhanced tests to verify collapse behavior for single and multiple task panel groups.
- Introduced caching for render segments to prevent unnecessary remounting of unchanged panels. - Added `hiddenPanelContentStyle` function to manage styles for hidden panels, ensuring proper width preservation. - Enhanced tests to verify the behavior of cached segments and hidden panel styles, improving performance and UI consistency.
- Introduced a neutral gray overlay for inactive task panels to improve visual distinction. - Updated styles to remove opacity from inactive panels, ensuring no color tinting occurs. - Enhanced tests to verify the new overlay behavior and opacity settings for task panels.
|
First off — thank you for this! 🙏 Panel grouping is a genuinely nice direction for the crowded-strip problem, the store/persistence/security plumbing is careful (project-id validation on load, fail-closed handling of corrupt state), and the test coverage on the pure planning helpers is appreciated. I ran a multi-perspective review (correctness, security, architecture, performance, simplicity, UX). Summary below — overall needs a few changes before merge, but the core is solid. 🔴 Must-fix: collapsing can hide the active panel
Fix: force-expand a group when one of its members becomes active (and/or reassign 🟡 High-value cleanups
🟢 Minor
💬 On the UX patternThe grouping + colored background is good. The part I'd reconsider is collapse-to-first-panel: it hides count and identity (you see one arbitrary full-size panel + a faint chevron, with no signal of how many/which tasks are behind it), while reclaiming little space since the representative still renders full-width. Combined with persistence, reopening the app can leave running tasks silently hidden. A couple of directions worth considering:
Also minor a11y: the collapse/expand buttons have only Happy to pair on the active-panel fix or the single-pass/ |
|
This PR is still rough — it's mainly meant to explore the grouping interaction. Once the direction is settled, I'll open a fresh PR for the real implementation. Before moving forward, I'd like to discuss a few key questions about the grouping UX:
Since these are grouped tasks, having them show, hide, and move together seems consistent. |
Summary
This branch introduces panel grouping to the tiling layout, grouping task panels by project and agent coordination mode (
independentvscoordinator). Each group can be collapsed into a single representative panel, and expanded again on demand. The feature also includes new grouped-panel chrome, updated visual treatments for inactive panels, and persistence for collapsed-group state.panelGroupCollapsedstore state keyed by${projectId}:${groupType}and persists it across sessions.TilingLayoutto computePanelGroupsegments and render grouped panels with a shared background, collapse/expand controls, and adjusted resize handles.styles.csswith new.panel-group-wrapper,.panel-group-collapse-btn,.panel-group-expand-btn, and inactive-panel overlay styles.